package com.gitee.sop.layui.adminserver.module.background.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gitee.sop.layui.adminserver.module.background.admin.entity.SysUserMenuRoleRelation;

import java.util.List;
import java.util.Set;

/**
 * com.zch.admin.base.entity.SysUserRoleRelation模型业务接口
 *
 * @author: admin
 * @date: 2019-11-13
 * @version: 1.0.0
 */
public interface SysUserMenuRoleRelationService extends IService<SysUserMenuRoleRelation> {

    /**
     * 查询指定用户的所有角色uuid信息
     *
     * @param appId    应用id
     * @param userUuid
     * @return
     */
    List<String> listRoleUuidByUserUuid(String appId, String userUuid);

    /**
     * 设置用户菜单角色
     *
     * @param userUuid   用户uuid
     * @param roleIdList 菜单角色id
     * @param appId      应用id，可为空，则设置当前应用
     */
    void setAuthority(String userUuid, List<Integer> roleIdList, String appId);

    /**
     * 获取用户的菜单url地址列表
     *
     * @param appId    应用id
     * @param userUuid 用户id
     * @return
     */
    Set<String> getPermissionUrl(String appId, String userUuid);

    /**
     * 获取指定菜单角色与用户的关联条目数
     *
     * @param appId            应用id
     * @param menuRoleUuidList 菜单角色uuid列表
     * @return
     */
    int countInMenuRoleUuids(String appId, List<String> menuRoleUuidList);

    /**
     * 删除指定用户
     *
     * @param appId 应用id
     * @param uuid  删除用户uuid
     */
    void removeByUserUuid(String appId, String uuid);
}